﻿//渲染表格数据
layui.use(['table', 'laypage', 'layer', 'form', 'laydate'], function () {
    var table = layui.table;
    var laypage = layui.laypage;
    var layer = layui.layer;
    var form = layui.form;
    var laydate = layui.laydate;
    var $ = layui.$;
    // 渲染
    laydate.render({
        elem: '#storageDate'
    });

    //绑定品种的枚举
    $(document).ready(function () {
        $.ajax({
            url: 'http://10.31.60.18:8000/EarTagGetRout/api/EarTagRead/zhuanSheepBreed', // 后端枚举数据接口地址
            type: 'get',
            dataType: 'json',
            success: function (res) {
                var enumData = res; // 直接使用返回的数据
                var select = $('#sheepBreed');
                $.each(enumData, function (index, item) {
                    // 使用正确的字段添加选项到下拉框中
                    var option = $('<option>').val(item.value).text(item.txt);
                    select.append(option);
                });
                // 手动触发 layui 组件的渲染
                layui.form.render('select');
            },
            error: function () {
                // 处理 AJAX 请求失败的情况
                console.error('Failed to fetch data for dropdown.');
            }
        });
    });

    //绑定对应出生状态的枚举
    $(document).ready(function () {
        $.ajax({
            url: 'http://10.31.60.18:8000/EarTagGetRout/api/EarTagRead/zhuanBirthStatus', // 后端枚举数据接口地址
            type: 'get',
            dataType: 'json',
            success: function (res) {
                var enumData = res; // 直接使用返回的数据
                var select = $('#BirthStatus');
                $.each(enumData, function (index, item) {
                    // 使用正确的字段添加选项到下拉框中
                    var option = $('<option>').val(item.value).text(item.txt);
                    select.append(option);
                });
                // 手动触发 layui 组件的渲染
                layui.form.render('select');
            },
            error: function () {
                // 处理 AJAX 请求失败的情况
                console.error('Failed to fetch data for dropdown.');
            }
        });
    });

    //绑定品种的枚举添加用
    $(document).ready(function () {
        $.ajax({
            url: 'http://10.31.60.18:8000/EarTagGetRout/api/EarTagRead/zhuanSheepBreed', // 后端枚举数据接口地址
            type: 'get',
            dataType: 'json',
            success: function (res) {
                var enumData = res; // 直接使用返回的数据
                var select = $('#sheepBreedAdds');
                $.each(enumData, function (index, item) {
                    // 使用正确的字段添加选项到下拉框中
                    var option = $('<option>').val(item.value).text(item.txt);
                    select.append(option);
                });
                // 手动触发 layui 组件的渲染
                layui.form.render('select');
            },
            error: function () {
                // 处理 AJAX 请求失败的情况
                console.error('Failed to fetch data for dropdown.');
            }
        });
    });

    //绑定对应出生状态的枚举添加用
    $(document).ready(function () {
        $.ajax({
            url: 'http://10.31.60.18:8000/EarTagGetRout/api/EarTagRead/zhuanBirthStatus', // 后端枚举数据接口地址
            type: 'get',
            dataType: 'json',
            success: function (res) {
                var enumData = res; // 直接使用返回的数据
                var select = $('#birthStatusAdds');
                $.each(enumData, function (index, item) {
                    // 使用正确的字段添加选项到下拉框中
                    var option = $('<option>').val(item.value).text(item.txt);
                    select.append(option);
                });
                // 手动触发 layui 组件的渲染
                layui.form.render('select');
            },
            error: function () {
                // 处理 AJAX 请求失败的情况
                console.error('Failed to fetch data for dropdown.');
            }
        });
    });

    var pageSize = 15; // 每页显示条数
    //获取列表
    function getListData(pageIndex) {
        //获取查询条件
        var earNumber = $('#earNumber').val();
        var sheepBreed = $('#sheepBreed').val();
        var BirthStatus = $('#BirthStatus').val();
        //ajax后台交互
        $.ajax({
            url: 'http://10.31.60.18:8000/EarTagGetRout/api/EarTagRead/EarTagShow',
            type: 'get',
            dataType: 'json',
            //参数
            data: {
                pageIndex: pageIndex,
                pageSize: pageSize,
                earNumber: earNumber,
                sheepBreed: sheepBreed,
                BirthStatus: BirthStatus,
            },
            success: function (res) {
                table.render({
                    //挂载的表格id
                    elem: '#ID-table-demo-setRowChecked',
                    cols: [
                        [
                            { type: 'checkbox' },

                            { field: 'earNumber', title: '羊只耳号' },
                            {
                                field: 'sheepBreed', title: '对应品种', align: 'center',
                                templet: function (data) {
                                    if (data.sheepBreed == 1) return '杜泊';
                                    if (data.sheepBreed == 2) return '澳洲白';
                                    if (data.sheepBreed == 3) return '萨福克';
                                    if (data.sheepBreed == 4) return '杜湖';
                                    if (data.sheepBreed == 5) return '杜杜湖';

                                    if (data.sheepBreed == 6) return '萨杜湖';
                                    if (data.sheepBreed == 7) return '澳湖';
                                    if (data.sheepBreed == 8) return '湖羊';
                                    if (data.sheepBreed == 9) return '澳杜湖';
                                }
                            },

                            {
                                field: 'birthStatus', title: '对应出生状态', align: 'center',
                                templet: function (data) {
                                    if (data.birthStatus == 1) return '活羔';
                                    if (data.birthStatus == 2) return '死羔';
                                }
                            },
                              {
                                  field: 'usageStatu', title: '使用状态', align: 'center',
                                templet: function (data) {
                                    if (data.usageStatu == 1) return '已使用';
                                    if (data.usageStatu == 2) return '未使用';
                                }
                            },
                            { field: 'storageDate', title: '入库日期', templet: function (data) { return data.storageDate.substring(0, 10) } },
                            { title: '操作', toolbar: '#barDemo' }
                        ]
                    ],
                    data: res.datas
                });

                //分页
                laypage.render({
                    //挂载的分页id
                    elem: 'pagesbox',
                    count: res.totalCount,
                    limit: pageSize,
                    curr: pageIndex,
                    layout: ['count', 'prev', 'page', 'next', 'skip'],
                    jump: function (obj, first) {
                        if (!first) {
                            getListData(obj.curr);
                        }
                    }
                });
            }
        });
    }

    $('#searchBtn').on('click', function () {
        getListData(1);
    });

    // 单删除
    function deleteData(earTagId) {
        $.ajax({
            url: `http://10.31.60.18:8000//EarTagSetRout/api/EarTag/EarTagDelete?earTagId=${earTagId}`,
            type: 'delete',
            success: function (res) {
                if (res.code == 200) {
                    layer.msg('删除成功');
                    getListData(1);
                } else {
                    layer.msg('删除失败');
                }
            },
            error: function () {
                layer.msg('删除请求失败');
            }
        });
    }
    //反填
    function editData(earTagId) {
        $.ajax({
            url: 'http://10.31.60.18:8000/EarTagGetRout/api/EarTagRead/EarTagBackfill?earTagId=' + earTagId,
            type: 'get',
            contentType: 'application/json',
            success: function (res) {
                console.log(res.data)
                if (res.code == 200) {
                    // 填充编辑数据
                    $("[name='earTagId']").val(res.data.earTagId);
                    $("#storageDate").val(res.data.storageDate.split('T')[0]);
                    $("#sheepBreedAdds").val(res.data.sheepBreed);
                    $("#birthStatusAdds").val(res.data.birthStatus);

                    // 通过设置checked属性来回显单选框
                    $('[name="insertType"][value="' + res.data.insertType + '"]').prop('checked', true);

                    $("#earNumbers").val(res.data.earNumber);
                    // 反填下拉框的值
                    $("#sheepBreedAdds").next().find("input").val(res.data.sheepBreed);
                    $("[name='usageStatu']").val(res.data.usageStatu);
                    layer.open({
                        type: 1,
                        title: "修改新记录",
                        shift: 2,
                        area: ['600px', '500px'],
                        shade: 0,
                        shadeClose: false,
                        content: $("#add-main"),
                        success: function (layero, index) {
                            layui.form.render(); // 重新渲染表单
                        }
                    });
                } else {
                    layer.msg(res.msg, { icon: 5 });
                }
            },
            error: function (err) {
                // 处理请求错误
            }
        });
    }

    // 监听工具条，实现删除功能及修改
    table.on('tool(ID-table-demo-setRowChecked)', function (obj) {
        var data = obj.data;
        if (obj.event == 'edit') {
            editData(data.earTagId); // 传递正确的数据项ID进行编辑操作
        }

        if (obj.event == 'delete') {
            layer.confirm('确定删除吗？', function (index) {
                deleteData(data.earTagId); // 传递的数据项ID进行删除操作
                layer(index);
            });
        }
    });
    // 批量删除
    $(".delAll_btn").click(function () {
        var checkStatus = table.checkStatus('ID-table-demo-setRowChecked'),
            data = checkStatus.data,
            earTagId = "";
        if (data.length > 0) {
            for (var i in data) {
                earTagId += data[i].earTagId + ",";
            }
            earTagId = earTagId.substring(0, earTagId.length - 1);
            console.log(earTagId);
            layer.confirm('确定删除选中的记录？', { icon: 3, title: '提示信息' }, function (index) {
                $.ajax({
                    url: `http://10.31.60.18:8000/EarTagSetRout/api/EarTag/EarTagBatchDelete?earTagId=${earTagId}`,
                    type: 'delete',
                    success: function (res) {
                        if (res.code == 200) {
                            layer.msg("批量删除成功");
                            getListData(1);
                        } else {
                            layer.msg("批量删除失败");
                        }
                    },
                    error: function () {
                        layer.msg('批量删除请求失败');
                    }
                });
                layer.close(index);
            });
        } else {
            layer.msg("请选择需要删除的记录");
        }
        console.log(checkStatus);
    });

    // 监听表单提交及修改
    form.on('submit(save)', function (data) {
        if ($("[name='earTagId']").val() == "") {
            // var earNumber = data.field.earNumber;
            var formData = {
                BirthStatus: $("#birthStatusAdds").val(),
                SheepBreed: $("#sheepBreedAdds").val(),
                InsertType: $("[name=insertType]:checked").val(),
                EarNumber: $("input[name='earNumber']").val(),
                StorageDate: $("#storageDate").val(),
                usageStatu: $("[name=usageStatu]").val(),
                CreateBy: "张三",
                CreateDate: new Date(),
            };
            console.log(formData);

            $.ajax({
                url: 'http://10.31.60.18:8000/EarTagSetRout/api/EarTag/EarTagCreate', // 替换为您的后端API接口地址

                type: 'post',
                data: JSON.stringify(formData),
                contentType: 'application/json',
                success: function (res) {
                    if (res.code == 200) {
                        layer.msg(res.msg, { icon: 1 });
                        setTimeout(function () {
                            location.href = '/EarTag/ShowEarTag'
                        }, 1000)
                    } else {
                        layer.msg(res.msg, { icon: 2 });
                    }
                },
                error: function () {
                    // 获取单个字段的输入框元素
                    const storageDate = document.getElementById('storageDate');

                    if (storageDate.value.trim() === '') {
                        layer.msg('入库日期不能为空！');
                        return;
                    }
                    // 获取单个字段的输入框元素
                    const sheepBreedAdds = document.getElementById('sheepBreedAdds');

                    if (sheepBreedAdds.value.trim() === '') {
                        layer.msg('品种不能为空！');
                        return;
                    }

                    const birthStatusAdds = document.getElementById('birthStatusAdds');

                    if (birthStatusAdds.value.trim() === '') {
                        layer.msg('对应出生状态不能为空！');
                        return;
                    }

                    const earNumbers = document.getElementById('earNumbers');

                    if (earNumbers.value.trim() === '') {
                        layer.msg('耳号不能为空！');
                        return;
                    }
                }
            });
            return false; // 阻止表单跳转
        }

        else {
            // var earNumber = data.field.earNumber;
            var formData = {
                earTagId: $("[name='earTagId']").val(), // 获取主键id
                BirthStatus: parseInt($("#birthStatusAdds").val()),

                SheepBreed: parseInt($("#sheepBreedAdds").val()),
                InsertType: $("[name=insertType]:checked").val(),
                EarNumber: $("input[name='earNumber']").val(),
                StorageDate: $("#storageDate").val(),
                usageStatu: $("[name=usageStatu]").val(),
                CreateBy: "张三",
                CreateDate: new Date(),
                UpdateBy: "李四",
                UpdateDate: new Date()
            };

            $.ajax({
                url: 'http://10.31.60.18:8000/EarTagSetRout/api/EarTag/EarTagUpdate', // 替换为您的后端API接口地址
                type: 'put',
                data: JSON.stringify(formData),
                contentType: 'application/json',
                success: function (res) {
                    if (res.code == 200) {
                        layer.msg(res.msg, { icon: 1 });
                        setTimeout(function () {
                            location.href = '/EarTag/ShowEarTag'
                        }, 1000)
                    } else {
                        layer.msg(res.msg, { icon: 2 });
                    }
                },
                error: function () {
                    // 获取单个字段的输入框元素
                    const storageDate = document.getElementById('storageDate');

                    if (storageDate.value.trim() === '') {
                        layer.msg('入库日期不能为空！');
                        return;
                    }
                    // 获取单个字段的输入框元素
                    const sheepBreedAdds = document.getElementById('sheepBreedAdds');

                    if (sheepBreedAdds.value.trim() === '') {
                        layer.msg('品种不能为空！');
                        return;
                    }

                    const birthStatusAdds = document.getElementById('birthStatusAdds');

                    if (birthStatusAdds.value.trim() === '') {
                        layer.msg('对应出生状态不能为空！');
                        return;
                    }
                }
            });
            return false; // 阻止表单跳转
        }
    });

    $(function () {
        // 初始化加载数据
        getListData(1);
    })
});
var $ = layui.$;
function onAddBtn() {
    // 执行新增操作
    $('#add-form')[0].reset(); // 重置表单
    var laydate = layui.laydate;
    // 渲染日期选择器
    laydate.render({
        elem: '#storageDate'
    });

    layer.open({
        type: 1,
        title: "添加新记录",
        shift: 2,
        area: ['600px', '500px'],
        shade: 0,
        shadeClose: false,
        content: $("#add-main"),
        success: function (layero, index) {
        }
    });
}